<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>回文数</title>
	</head>
	<body>
		<script>
			/*题目描述：
			 * 判断一个整数是否是回文数。回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。
			 * 示例 1:
			 * 输入: 121
			 * 输出: true
			 * 示例 2:
			 * 输入: -121
			 * 输出: false
			 * 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
			 * 示例 3:
			 * 输入: 10
			 * 输出: false
			 * 解释: 从右向左读, 为 01 。因此它不是一个回文数。
			 * 进阶:
			 * 你能不将整数转为字符串来解决这个问题吗？
			 */
			//思路：数字本身反转，将反转后的数字与原始数字进行比较，相同则为回文，考虑到反转后数字过大会出现整数溢出问题
			//为避免，考虑只反转数字的一半，回文后半部分反转后应该与原始数字的前半部分相同
			function isPalindrome(x){
				//负数都不可能是回文，最后一位为0的只有0可以满足
				if(x<0||(x%10==0&&x!=0)){
					return false;
				}
				var revertedNumber=0;
				//当原始数字小于反转后的数字时，意味着我们已经处理了一半的数字
				while(x>revertedNumber){
					revertedNumber=revertedNumber*10+x%10;
					x=Math.floor(x/10)
				}
				//数字长度为奇数，用reversedNumber/10去掉中位数字，中位数字对回文无影响
				return x == revertedNumber || x == Math.floor(revertedNumber/10);
			}
			var x=123321
			console.log(isPalindrome(x))

		</script>
	</body>
</html>
